package com.xianyu.ssoserver.model.ticket;

import java.io.Serializable;

public interface Ticket extends Serializable {

    /**
     * 存放与缓存Map中的key
     */
    String getId();

    /**
     * 检测Ticket是否过期，可以定制过期策略
     */
    boolean isExpired();

    /**
     * 获取TGT
     */
    TicketGrantingTicket getGrantingTicket();

    /**
     * 返回“使用”票证的次数
     */
    int getCountOfUses();

    /**
     * 返回最近一次使用Ticket的时间
     */
    long getLastTimeUsed();

    /**
     * 按使用次数递增
     */
    void incrementCountOfUses();

    /**
     * 设置上次使用到当前时间的时间
     */
    void updateLastTimeUsed();
}
